Jeg ville ændre dette:
statement.executeQuery(rawQuery);
results = statement.getResultSet();
til dette:
results = statement.executeQuery(rawQuery);
Sidstnævnte er bestemt den API-godkendte måde at gøre dette på, og selvom jeg ikke kan sige med sikkerhed, at førstnævnte er et problem, ser det bestemt ligesom det kunne skabe to separate resultatsæt, hvoraf du kun lukker det ene.