Add the olive oil to a large pot or Dutch oven set over medium heat. Add the onions and cook for 3-5 minutes or until softened and translucent. Add the carrots, celery, minced garlic, dried thyme, sage, salt, and black pepper. Cook for 5-8 minutes, stirring occasionally.
Pour in the chicken broth and water (if adding) and mix well to combine. Carefully add the chicken to the pot and bring to a boil.
Once boiling, reduce the heat to low. Simmer for approximately 15-20 minutes or until the internal temperature of the chicken registers 160°F as measured with a digital meat thermometer. Remove the chicken to a clean plate using kitchen tongs (over-cooking will result in dry, chewy chicken). In a separate bowl, whisk together the room-temperature heavy cream and all-purpose flour until no clumps remain.
Slowly pour the cream and flour mixture into the soup, whisking continuously. Return the soup to a light simmer, but do not boil.
Once the chicken is cool enough to handle, shred it using two forks (or your hands).
Add the gnocchi to the pot and allow them to cook for about 4-5 minutes or until they begin to float.
Once the gnocchi starts to float, add the chicken back to the pot. Gently stir to combine.
Add the fresh spinach and let the soup simmer for 2-3 minutes—season with additional salt and black pepper to taste.