How to know if a collider has a rigid body inside it or not?

In the board game (chess-like) that Im making, on the board, there will be my main gameObject that I control and various collectibles that my main object "swallows".

Each time it swallows a collectible, a new collectible will be spawned in a random position. This random position must be one of the "unoccupied" board boxes (those that don't have a collectible or my main object on them). So, I want to know every moment which squares of the board are occupied and which aren't.

I put an empty game object prefab on each of the board squares. This prefab has a Rigid Body component and a Box Collider attached. Depending on if another rigid body is inside this collider or not, the prefabs tag will change between 2 tags: empty/ full. What is the best way to do this? (control the tag's String)

I am thinking that maybe I could do this somehow using an OnTriggerStay function or a Selection.Contains class function? I dont have experience in using either one of them.

I would suggest something like this:

var currentObjectInstance : int = -1;

function OnTriggerEnter(other : Collider) {
    if (other.gameObject.tag == "Thingy") {
        this.gameObject.tag = "Full";
        currentObjectInstance = other.gameObject.GetInstanceID();
    }
}

function OnTriggerExit(other : Collider) {
    if (other.gameObject.tag == "Thingy" && other.gameObject.GetInstanceID() == currentObjectInstance) {
        this.gameObject.tag = "Empty";
        currentObjectInstance = -1;
    }
}

Edit: Adjusted the example. The tag is used so that we know it's the right kind of object (you might have projectiles / particles or whatever that could result in the OnTrigger functions begin called - you can skip the check if not). The instance id is used to make sure it's the same object that's entering / exiting the box (again, if only one object of that tag exists or can be entering / exiting at a time, you could skip the check).