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