protected void extractCategoryRecords(ResultSet rs, List<CategoryRecord> vecres, int max)
		throws SQLException {
		List<CategoryRow> catrows = new ArrayList<CategoryRow>();
		boolean finished = false;

		while (rs.next()) {
			if (!finished) {
				CategoryRow row = new CategoryRow();
				catrows.add(row);
				extractCategoryRow(rs, row);
				if ((max > 0) && (catrows.size() >= max)) {
					finished = true;
				}
			}
		}
		for (int i = 0; i < catrows.size(); ++i) {
			CategoryRow row = catrows.get(i);
			String type = catstringtable.getString(row.id_type);
			String category = catstringtable.getString(row.id_category);
			CategoryRecord catrec = new CategoryRecord(type, category);
			vecres.add(catrec);
		}
	}
Constructor 

@param catstringtable table containing all category values
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/client/tables/ExeToCategoryTable.java