Chargeback unifies information from vCloud and vCenter. I don't think vCloud Director offers the Datastore directly from the API, just what storage profile the VM is attached to. Chargeback takes the data from vCD and then cross references to vCenter for "more information" for billing purposes.
If you just want the profile, you check at the VM level, then query the vm directly. Don't bother wtih the datastore list from the query service.
based on vCloud logic, if a VM is assigned a specific profile ... all disks of that VM should be on datastores assigned said profile.