Кэширование это больная тема! Ваш вариант с SQLite очень неплох! Мы использовали
https://github.com/rt2zz/redux-persist, но он себя показал не с лучшей стороны! Пришлось руками класть необходимые данные по ключам в asyncstore и при необходимости синхронизировать с сервером.
Что касается изображений нужно понимать что держать все время картинки в памяти телефона плохая идея! react-native-cached-image использовали и она работала, но не на большом количестве картинок.