public final Address getExternalProgramAddress() {
		lock.acquire();
		try {
			checkIsValid();
			if (record == null) {
				return null;
			}

			// NOTE: String is used to avoid excessive AddressMap segmentation.  This does
			// prevent address space renaming as facilitated by Language upgrade and transition
			// capabilities.
			String addrStr = record.getString(SymbolDatabaseAdapter.SYMBOL_EXTERNAL_PROG_ADDR_COL);
			if (addrStr == null) {
				return null;
			}
			return symbolMgr.getAddressMap().getAddressFactory().getAddress(addrStr);
		}
		finally {
			lock.release();
		}
	}
Gets the optional field which is intended to store the original mangled name for an external
{@link SymbolType#LABEL} or {@link SymbolType#FUNCTION} which has an 
{@link Address#isExternalAddress() external address}.  These symbol types correspond 
to {@link CodeSymbol} and {@link FunctionSymbol} DB symbol implementations respectively.
This is generally set when an {@link ExternalLocationDB} is renamed which generally
corresponds the external symbol being demangled.

@return external Program address or null if not external or unknown
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/symbol/MemorySymbol.java