@Override
	protected DBRecord getPrimarySymbol(Address address) throws IOException {
		AddressIndexPrimaryKeyIterator it = new AddressIndexPrimaryKeyIterator(symbolTable,
			SYMBOL_PRIMARY_COL, addrMap, address, address, true);
		if (it.hasNext()) {
			return convertV3Record(symbolTable.getRecord(it.next()));
		}
		return null;
	}
SymbolDatabaseAdapter for version 3

This version provides for fast symbol lookup by namespace and name and introduced the use of 
sparse table columns for storing optional symbol data (hash, primary, datatype-ID, variable-offset).
It was created in June 2021 with ProgramDB version 24. 
It was first in affect within Ghidra starting at version 10.1
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/symbol/SymbolDatabaseAdapterV3.java