private void checkFunctionWrappedPointers(TaskMonitor monitor)
			throws IOException, CancelledException {
		int storedVersion = getStoredVersion();
		if (storedVersion < EXTERNAL_FUNCTIONS_ADDED_VERSION) {
			FunctionManager functionManager = getFunctionManager();
			SymbolTable symbolTable = getSymbolTable();
			monitor.setProgress(0);
			monitor.setMaximum(functionManager.getFunctionCount());
			int cnt = 0;
			for (Symbol functionSymbol : symbolTable.getSymbols(memoryManager, SymbolType.FUNCTION,
				true)) {
				monitor.checkCancelled();
				ProgramUtilities.convertFunctionWrappedExternalPointer(functionSymbol);
				monitor.setProgress(++cnt);
			}
		}
		else {
			return;
		}
	}
Initialize the following fields from the database and check the database version for an existing database:
<ul>
<li>name</li>
<li>languageName</li>
<li>languageVersion</li>
<li>LanguageMinorVersion</li>
</ul>
@param openMode program open mode
@return version exception if the current version is out of date and can be upgraded
@throws IOException if there is an exception at the database level
@throws VersionException if the data is newer than this version of Ghidra and can not be
upgraded or opened.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/ProgramDB.java