You can create a SQLite database file in the external storage so it will not be deleted when the user clears cache or even delete App Data. But you can not prevent any of these to be deleted. User has full control of what can be on the device and what not.
Edit
As @NileshRathod mentioned in the comments below, you can redirect a user to an Activity to manage what could be deleted and what not simply by adding the following in your Android Manifest:
<!--Prevent user from deleting App Preferences-->
<application ... android:manageSpaceActivity=".MyManageSpaceActivity">