MediaStore is actually an unholy hybrid of database and filesystem. If you assume the data is entirely in one or the other (I mean, you didn't expect it to be consistent with itself, did you?) your code will break in different ways on different devices, since for some reason it's a favourite area of the manufacturers to play with.
No, it is a ContentProvider with a database-like API to which you have linked. The various system DocumentsProvider instances read and write to this provider.
This is also the standard API you access through ContentResolver, and this is still present in Kit Kat.
http://developer.android.com/reference/android/provider/Medi...