@Override
	MemoryBlockDB createBlock(MemoryBlockType blockType, String name, Address startAddr,
			long length, Address mappedAddress, boolean initializeBytes, int flags,
			int encodedMappingScheme) throws AddressOverflowException, IOException {

		if (blockType == MemoryBlockType.BIT_MAPPED) {
			return createBitMappedBlock(name, startAddr, length, mappedAddress, flags);
		}
		if (blockType == MemoryBlockType.BYTE_MAPPED) {
			return createByteMappedBlock(name, startAddr, length, mappedAddress, flags,
				encodedMappingScheme);
		}
		// DEFAULT block type
		if (initializeBytes) {
			return createInitializedBlock(name, startAddr, null, length, flags);
		}
		return createUninitializedBlock(name, startAddr, length, flags);
	}
MemoryMap adapter for version 3.
This version introduces the concept of sub memory blocks and FileBytes
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/mem/MemoryMapDBAdapterV3.java