I have designed a large amount of solar, both ground mounted and roof mounted, of which the roof mounted was either fixed or ballasted. I have see systems that were tray based filled with gravel or CMU blocks and I have seen others that had a precast block that the rails attached too. The trick here is it needs to go through a racking manufacturer as many have proprietary systems and wind tunnel studies and can optimize the location on the roof using their studies to provide the least amount of ballast possible. If you designed a ballast system for wind uplift per ASCE for a tilted solar system (7-16 has a whole section on this) you will get fairly large ballast requirements to counteract uplift and sliding (both happen at the same time and should have a load combination adjustment factor - ASD is 0.6D). I just can't see designing a roof to support such a system without a proprietary system as being cost effective.
Note that SEAoC has some PV guidelines which ASCE7-16 was based on. This was developed with wind tunnel studies by one of the big testing agencies. I recall there may be guidelines that allow for movement on the roof, ie sliding, but with the caveat that after they move they have to be placed back in their original location, but this may be for seismic only. I also recall some discussion on ballast not being allowed for seismic without some exceptions that SEAoC PV1 and PV2 documents gave.