public CommentHistory[] getCommentHistory(Address addr, CommentType commentType) {
		lock.acquire();
		try {

			// records are sorted by date ascending						
			List<DBRecord> allRecords = getHistoryRecords(addr, commentType);

			List<CommentHistory> results = new ArrayList<>();
			String comment = getComment(addr, commentType);
			while (!allRecords.isEmpty()) {

				DBRecord rec = allRecords.get(allRecords.size() - 1);
				long date = rec.getLongValue(CommentHistoryAdapter.HISTORY_DATE_COL);
				List<DBRecord> records = subListByDate(allRecords, date);

				List<StringDiff> diffs = new ArrayList<>(records.size());

				String user = null;
				for (DBRecord r : records) {
					user = r.getString(CommentHistoryAdapter.HISTORY_USER_COL);
					int pos1 = r.getIntValue(CommentHistoryAdapter.HISTORY_POS1_COL);
					int pos2 = r.getIntValue(CommentHistoryAdapter.HISTORY_POS2_COL);
					String data = r.getString(CommentHistoryAdapter.HISTORY_STRING_COL);
					diffs.add(StringDiff.restore(data, pos1, pos2));
				}

				results.add(new CommentHistory(addr, commentType, user, comment, new Date(date)));
				comment = StringDiffUtils.applyDiffs(comment, diffs);

				records.clear(); // remove the subList elements from the list
			}

			CommentHistory[] h = new CommentHistory[results.size()];
			return results.toArray(h);
		}
		catch (IOException e) {
			dbError(e);
		}
		finally {
			lock.release();
		}
		return new CommentHistory[0];
	}
Get the comment history for the comment type at the given address 

@param addr address for the comment history
@param commentType comment type
@return zero length array if no history exists
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/code/CodeManager.java