Först och främst, är du säker på att du behöver hela bordet i minnet? Kanske bör du överväga (om möjligt) att välja rader som du vill uppdatera/sammanfoga/etc. Om du verkligen måste ha hela tabellen kan du överväga att använda en rullningsbar ResultSet. Du kan skapa det så här.
// make sure autocommit is off (postgres)
con.setAutoCommit(false);
Statement stmt = con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE, //or ResultSet.TYPE_FORWARD_ONLY
ResultSet.CONCUR_READ_ONLY);
ResultSet srs = stmt.executeQuery("select * from ...");
Det gör att du kan flytta till vilken rad du vill genom att använda "absoluta" och "relativa" metoder.