Обязательное ли использование ORM для работы с SQLite?
если вы пишите для веба то скорее да чем нет,  ORM  при работе с бд хорошая практика, как минимум вы не можете гарантировать что в процессе развития проекта вам не придется сменить бд .. если вы используете ORM  то этот процесс пройдет менее болезненно, кроме того в вебе гораздо чаще приходится писать динамичные запросы, да и в целом работы с бд намного больше, поэтому ORM давно стали стандартом 
что касается sqlite то это в первую очередь бд для приложений (не только мобильных)
ну а теперь про android - тут дело вкуса, лично мне не нравятся существующие ORM  для android, я бы с куда большим удовольствием использовал какой то билдер для запросов к ContentProvider (парочка есть но когда последний раз смотрел было сыро)
из моей практики  как то писал приложение с кучей настроек, полей ввода, чекбоксов, спинеров и тд, любое изменение настроек должно было быть показано пользователю сразу - ContentProvider справился отлично, но участок кода отвечающий за генерацию запроса был ужасен,  дело было давно, сегодня бы для этой задачи наверное использовал бы какой то orm и rxjava
из orm для android наиболее приятен в плане функционала ormlite но он давно не обновлялся и достаточно медлителен
realm.io -ни разу не sqlite а самый настоящий nosql, за счет этого прилично выигрывает в скорости, на этом его плюсы для меня и заканчиваются, не рекомендую, хотя это только мое имхо, никак не навязываю, кому то даже нравится, но большая часть людей  кто с ней работал чуть больше чем запустить hello world со мной солидарны (опять же мое имхо у кого то может быть иная статистика  ) )
зы присматриваюсь к этой штуке https://github.com/square/sqlbrite но все нет случая попробовать
Если хочется разобраться в вопросе, возьмите чистый JDBC и поработайте через него. Затем уже можно переползать на ORM. Тем более, что SQLite не супер навороченная СУБД. А вот если вы за СУБД возьмете какой-нибудь H2, HSQL или JavaDB, то выбор ORM расширяется до Hibernate, Mybatis и прочих