Интересная статья о том, как в RecyclerView можно отображать большое количество записей из БД, и при этом не держать их всех в памяти. Для этого используется малоизвестный инструмент AsyncListUtil. Он может по мере необходимости тянуть данные из курсора в фоновом потоке.
https://android.jlelse.eu/how-to-use-asynclistutil-16b5175bb468
https://android.jlelse.eu/how-to-use-asynclistutil-16b5175bb468