private void readHistoryFile() throws IOException {

		ArrayList<Version> list = new ArrayList<Version>();
		minVersion = 0;
		curVersion = 0;

		File historyFile = getHistoryFile();
		BufferedReader in = new BufferedReader(new FileReader(historyFile));
		try {
			String line = in.readLine();
			while (line != null) {
				Version ver;
				try {
					ver = decodeVersion(line);
				}
				catch (Exception e) {
					throw new IOException("Bad history file: " + historyFile);
				}
				int version = ver.getVersion();
				if (curVersion != 0 && version != (curVersion + 1)) {
					// Versions must be in sequential order
					throw new IOException("Bad history file" + historyFile);
				}
				if (minVersion == 0) {
					minVersion = version;
				}
				curVersion = version;
				list.add(ver);
				line = in.readLine();
			}
		}
		finally {
			in.close();
		}

		versions = new Version[list.size()];
		list.toArray(versions);
	}
Read data from history file.
@throws IOException
Ghidra/Framework/FileSystem/src/main/java/ghidra/framework/store/local/HistoryManager.java