Q:

Realm for Java/Android - preserving the state of query/result

In the project currently under development, we are integrating the Realm Database into the customer's app to improve responsiveness while working on a huge data set of ~20.000 records.  For on-screen presentation, we are incorporating Realm's Android Recyclerview.  Majority of the use cases are read operations, followed up by the possibility of advanced search and/or filtering of the records.  
Where the shoe pinches are that on some of our views, from all the data of given type only a subset of records is supposed to be displayed, selected by the back-end.  Using the information passed by the API, we perform the initial filtering and set up the view. 
Now, using the aforementioned technologies, is there a readable and maintainable way to store either this pre-filtered subset or the query fetching it for further reference, so that the initial state of the view can always be restored once the searchview and/or filters are cleared?  Or should storing the API response re-applying the conditions given through it be the only way to do it?  Applying any new conditions to the query seems to alter it for good, the same goes for applying new queries to the results.  Shouldn't there be a way to create ourselves a fresh result set based on an old one but without disturbing the latter? 
Edit: Our app being 'bilingual', both Java- and Kotlin-based solutions are welcomed, should they differ.  

A:

As we came to realise after a while earlier this week, and just as @EpicPandaForce have mentioned in the comments, while the RealmQuery object cannot be "snapshoot" by assigning it to a spare variable before extending it, the same is not true for RealmResults objects.  And so:
RealmResults<Obj> widerResults = realmInstance.where(Obj.class).in("id", idArray).findAll;
RealmResults<Obj> narrowerResults = widerResults.where().equalTo("flag", true).findAll;

Will provide two independent result sets.  The wider one can be used as per the use case I highlighted - to treat it as a starting point for further subqueries.  The changes to objects found in the sets themselves will still be reflected in both sets.  
Providing an answer for all the lost souls out there, should they get stuck like we did. 