You can recreate a nonnull wrapper for livedata which is passed a default value. This works well for simple cases where you are just changing it via myLiveData.value = whatever. Gets more complicated when you start using the maps or livedata from a repository where its loading something async. In those cases even though you'd like your data to never be null the short time between loading and loaded is a weird state, you know its never going to be null... eventually, so you gotta handle that case by allowing null.