public List<CallgraphRow> queryCallgraphRows(FunctionDescription func,
		boolean trackcallgraph) throws SQLException {
		if (!trackcallgraph) {
			throw new SQLException("SQL database does not have callgraph information enabled");
		}
		PreparedStatement s =
			selectStatement.prepareIfNeeded(() -> db.prepareStatement(SELECT_STMT));
		RowKey funcid = func.getId();
		if (funcid == null) {
			throw new SQLException("FunctionDescription does not have id");
		}
		s.setLong(1, funcid.getLong());
		try (ResultSet rs = s.executeQuery()) {
			List<CallgraphRow> callvec = new ArrayList<>();
			while (rs.next()) {
				CallgraphRow row = extractCallgraphRow(rs);
				if (row.dest == 0) {
					continue;
				}
				callvec.add(row);
			}
			return callvec;
		}
	}
@param func the function description
@param trackcallgraph true if the database tracks call graph information
@return the list of {@link CallgraphRow}s
@throws SQLException if there is a problem parsing the {@link ResultSet} objects
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/client/tables/CallgraphTable.java