What do you think about two separate methods here instead of a boolean switch (`NewIterator()`, `NewSnapshotIterator()`), as it makes it easier to understand the code when a new iterator gets created.