private DBRecord createMemoryBlockRecord(String name, Address startAddr, long length,
			int flags) {
		DBRecord record = V3_BLOCK_SCHEMA.createRecord(memBlockTable.getKey());
		record.setString(V3_NAME_COL, name);
		record.setLongValue(V3_START_ADDR_COL, addrMap.getKey(startAddr, true));
		record.setLongValue(V3_LENGTH_COL, length);
		record.setByteValue(V3_FLAGS_COL, (byte) flags);
		record.setIntValue(V3_SEGMENT_COL, getSegment(startAddr));
		return record;
	}
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