al massimo potresti clonare il resultSet in uno sganciato dalla connessione, ma in realtà la clonazione per questo oggetto non è prevista e non ha nemmeno tanto senso (visto che è il risultato di una query).

Puoi anche castare ad un'altra classe, il punto è che erediti da ResultSet e questo è legato allo statement.
Che io sappia non esiste modo di creare uno statement e lavorarci offline.

Puoi provare a scrivere la query in modo diverso, sfruttando join e condizioni, in questo caso prova prima direttamente sul db.

Infine puoi usare preparedStatement, in modo da non dover ricompilare la query ogni volta. Ma ricorda che preparedStatement si comporta come statement a livello di chiusura