Motivation
CDBIterator::GetValue() currently copies the current LevelDB value into a
temporary DataStream before deserializing it. This is only needed when
database obfuscation is enabled, because deobfuscation mutates the value bytes
before they are read.
Change
Use SpanReader to deserialize iterator values directly when the database has
no obfuscation key. Keep the existing DataStream path for obfuscated
databases.
This mirrors the existing GetKey() borrowed-span path while preserving the
old exception-to-false behavior.
Test
cmake --build build --target test_bitcoin
build/bin/test_bitcoin --run_test=dbwrapper_tests