Small brush, spray bottle of fabric cleaner or diluted soapy water. Spray the tiniest amount on the stain and agitate with the small brush in circles. It should not get wet, just slightly misted with cleaner. Pat dry lightly with a clean cloth
posted last night from my phone, just wanted to add a little more detail here.
There are purpose made detailing brushes that are designed for cleaning smaller areas. They're round and have sizes about the same as a nickel or quarter (think makeup brush sized). Using a clean brush, spray a little cleaner on the brush itself (do not saturate it) and spray a very small amount on the stained area. You don't want the headliner to be soaked through or it may delaminate from the roof. Use small circular motions to agitate the stain and help to lift it, then pat it dry with a clean towel to lift any moisture from the headliner. Let dry and re-attempt as needed. Don't scrub, you can pull the headliner off with too much pressure/movement.
You -can- steam clean for large areas if you have access to a steam cleaner. Duct tape a few balled up towels to the steam outlet to reduce the amount of heat and moisture getting to the adhesive. There is an AMMO NYC video on interior detailing that covers both methods. It is good info. It is linked here >
https://www.ammonyc.com/detailing/how-to-properly-clean-headliners/ < but i can't see the videos at work so I'm taking a shot in the dark that it's the right one (but i think, in this case, it's a safe bet)